package cantools

import (
	"gitee.com/CoolguyHolmes/socketcan-fd"
	"os"
)

type Can struct {
	// 交互的Interfaces
	canIfs []fd.Interface
	rCh    chan *fd.RawFrame // 接收到的包将放入此队列串行化
	// 镜像功能
	mirror bool
	// 镜像功能的fd
	fd *os.File
	// 报文串行化写入文本
	logCh chan *fd.RawFrame
	// hook list
	hookList []func(*fd.RawFrame)
	// 内部使用的Serialization
	serialization Serialization
	canIfChs      []chan *fd.RawFrame // 前面N个是对应的通道, 最后一个index是代表全接收
	switchs       []bool              // 前面N个是对应的通道, 最后一个index是代表全接收
	indexWhoIsAll uint32              // 最后一个index的数值
	mirrorPath    string              // 用来避免repeater循环读写的
}

//// ReplayFrame 考虑到自定义序列化器的时候需要重写方法会用到这个结构体
//type ReplayFrame struct {
//	timeStamp int64
//	fd.RawFrame
//}

type Repeater struct {
	// 读取文件用的fd
	fd *Fd
	// canInstance
	c *Can
}
